فرض کن مدیر یه شرکت هستی و چندین کارمند داری. باید برای هر کدوم یه **کارت شناسایی** (حساب کاربری) بدی، بهشون **دسترسی** بدی، **رمز عبور** بدن و حتی اگه دیگه کار نمیکنن، حسابشون رو **ببندی**. توی لینوکس هم دقیقاً همینطوره! این جلسه بهت یاد میده چطور کاربران رو مدیریت کنی، رمز عبور رو تغییر بدی، کاربر رو لاک کنی و حتی گروهها رو مدیریت کنی.
دلایل اصلی برای اضافه کردن کاربران جدید در لینوکس:
هرگز با کاربر root کارهای روزمره را انجام ندهید. همیشه یک کاربر معمولی بسازید و فقط در مواقع ضروری از sudo استفاده کنید.
در لینوکس، سطح دسترسیها به کاربران اعمال میشود. هر کاربر در زمان ایجاد، عضو گروه اصلی (Primary Group) خود میشود (معمولاً گروهی با همان نام کاربر). همچنین کاربر میتواند عضو گروههای ثانویه (Secondary Groups) نیز باشد تا به منابع خاصی دسترسی پیدا کند.
فرآیند ایجاد یک کاربر جدید شامل مراحل زیر است:
لینوکس از چند فایل برای تعیین تنظیمات پیشفرض کاربران جدید استفاده میکند:
/etc/default/useradd → تنظیمات پیشفرض دستور useradd/etc/login.defs → تنظیمات مربوط به رمز عبور و سیاستهای امنیتی/etc/skel/ → فایلهای پیشفرض که به دایرکتوری خانه کاربر کپی میشوند/etc/login.defsاین فایل شامل تنظیمات مربوط به سیاستهای رمز عبور و مدیریت کاربران است. برخی از پارامترهای مهم آن عبارتند از:
| پارامتر | توضیح |
|---|---|
PASS_MAX_DAYS |
تعداد روزهایی که رمز عبور معتبر است (تاریخ انقضا) |
PASS_MIN_DAYS |
حداقل تعداد روزهایی که باید از تغییر رمز عبور بگذرد تا بتوان دوباره آن را تغییر داد |
PASS_MIN_LENGTH |
حداقل طول مجاز برای رمز عبور |
PASS_WARN_AGE |
تعداد روزهایی که قبل از انقضای رمز عبور، به کاربر هشدار داده میشود |
CREATE_HOME |
آیا دایرکتوری خانه برای کاربر ایجاد شود؟ (پیشفرض: no) |
ENCRYPT_METHOD |
روش هش کردن رمز عبور (مثل SHA512) |
/etc/login.defs در آزمونهای امنیتی لینوکس بسیار مهم هستند.
/etc/default/useradd
این فایل تنظیمات پیشفرض دستور useradd را مشخص میکند. با دستور useradd -D میتوانید این تنظیمات را مشاهده کنید:
useradd -D -s /bin/bash میتوانید شل پیشفرض کاربران جدید را تغییر دهید.
/etc/skel/
این دایرکتوری شامل فایلهای پیشفرضی است که هنگام ایجاد یک کاربر جدید، به دایرکتوری خانه او کپی میشوند. این فایلها معمولاً شامل فایلهای پیکربندی مانند .bashrc، .profile و .bash_logout هستند.
/etc/passwd
این فایل اطلاعات اولیه همه کاربران سیستم را ذخیره میکند. هر خط شامل ۷ فیلد است که با : از هم جدا شدهاند:
x نشان داده میشود که یعنی رمز در /etc/shadow ذخیره شده است./etc/shadowاین فایل رمزهای عبور کاربران را به صورت هششده ذخیره میکند. فقط کاربر root میتواند این فایل را بخواند.
/etc/shadow فقط توسط کاربر root قابل خواندن است و شامل رمزهای عبور هششده است.
passwd
دستور passwd برای تغییر رمز عبور کاربران، لاک کردن و آزاد کردن حسابهای کاربری استفاده میشود.
passwd| گزینه کوتاه | گزینه بلند | توضیح |
|---|---|---|
-d |
--delete |
حذف رمز عبور کاربر (کاربر بدون رمز عبور میتواند وارد شود!) |
-e |
--expire |
منقضی کردن رمز عبور (کاربر در ورود بعدی مجبور به تغییر رمز میشود) |
-l |
--lock |
لاک کردن حساب کاربری (با گذاشتن ! جلوی رمز در /etc/shadow) |
-u |
--unlock |
آزاد کردن حساب کاربری (حذف ! از /etc/shadow) |
-S |
--status |
نمایش وضعیت رمز عبور کاربر |
-n |
--minimum |
تنظیم حداقل روزهای بین تغییر رمز |
-i |
--inactive |
تنظیم تعداد روزهای غیرفعال شدن پس از انقضای رمز |
passwd -l username و برای آزاد کردن از passwd -u username استفاده میشود.
passwd
توضیح: کاربر ali لاک میشود و نمیتواند وارد سیستم شود.
توضیح: وضعیت رمز عبور کاربر ali را نشان میدهد. L یعنی لاک شده (Locked).
توضیح: کاربر ali آزاد (Unlock) میشود و میتواند دوباره وارد سیستم شود.
اگر رمز عبور کاربر را با passwd -d حذف کنید، کاربر بدون رمز عبور میتواند وارد سیستم شود. این کار بسیار خطرناک است! در چنین حالتی، حتماً کاربر را با passwd -l لاک کنید تا کسی نتواند وارد شود.
passwd -d)، حتماً برای امنیت، کاربر را با passwd -l لاک کنید.
usermod
دستور usermod برای تغییر مشخصات یک کاربر موجود استفاده میشود.
| گزینه | توضیح |
|---|---|
-c |
تغییر فیلد GECOS (توضیحات کاربر) |
-d /new/home -m |
تغییر دایرکتوری خانه و انتقال فایلها به محل جدید |
-e YYYY-MM-DD |
تنظیم تاریخ انقضای حساب کاربری |
-g group |
تغییر گروه اصلی کاربر |
-G group1,group2 |
تغییر گروههای ثانویه کاربر (با -a اضافه میکند) |
-s /bin/bash |
تغییر شل پیشفرض کاربر |
-L |
لاک کردن کاربر (معادل passwd -l) |
-U |
آزاد کردن کاربر (معادل passwd -u) |
usermod -aG groupname username استفاده کنید.
userdel
برای حذف یک کاربر از سیستم از دستور userdel استفاده میشود.
توضیح: -r دایرکتوری خانه و ایمیل کاربر را نیز حذف میکند.
userdel -r username استفاده کنید.
groupadd
توضیح: ایجاد گروه Project42 با GID 1042.
توضیح: کاربر ali به گروه Project42 اضافه میشود (بدون حذف گروههای قبلی).
useradd usernamepasswd usernamepasswd -l usernamepasswd -u usernamepasswd -d username (خطرناک! حتماً لاک کنید)usermod -options usernameuserdel -r usernamegroupadd groupnameusermod -aG groupname username/etc/passwd، /etc/shadow، /etc/group، /etc/login.defs، /etc/default/useradd